<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script>
    /* 
    题目描述：一个机器人的位于一个 m × nm×n 个网格左上角。
机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。
问有多少条不同的路径？
    */
/* 
分析：子问题化：达到右下角的路径数可以分解成到达相邻左边格子和上面格子的种类数
转移方程：f(m,n) = f(m - 1, n) + f(m, n - 1)
边界处理，最上面一行和左边一列中，达到每个格子的种类数只能是1，因为只能是一个方向
计算顺序：00-mn
*/
function uniquePath(m, n){
    //初始化
    let f = new Array(m)
    for(let i = 0; i < m; i++){
        f[i] = new Array(n).fill(1)
    }
    for(let row = 0; row < m; row++){
        for(let col = 0; col < n; col++){
            if(row === 0 || col === 0) continue
            else{
                f[row][col] = f[row - 1][col] + f[row][col - 1]
            }
        }
    }
    return f[m -1][n - 1]
}
console.log(uniquePath(3,3))
</script>
</body>
</html>